#include <iostream>
using namespace std;
class S
{
    int data;

public:
    S(int d)
    { // 构造函数重载 #1
        data = d;
    }
    // 复制构造函数 : T(const T&);
    S(const S &s)
    { // 构造函数重载 #2，复制构造
        std::cout << "copy constructor called" << std::endl;
    }
};
void f(S a) {}
int main()
{
    S sth(42); // 调用重载 #1
    f(sth);
}